package com.xiaoq.ar.vo;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.xiaoq.ar.entity.Punchs;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;

/**
 * Created by chenjh on 2018/4/18.
 */
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyTreasureVo implements Serializable{

    private static final long serialVersionUID = 1794802514530942761L;

    @ApiModelProperty(name = "id", value = "主键id", position=0)
    private String id;

    /*** 用户ID */
    @ApiModelProperty(name = "userId", value = "用户ID", position=0)
    private String userId;

    /*** 活动提供者(一般指景区) */
    @ApiModelProperty(name = "providerId", value = "活动提供者(一般指景区)", position=1)
    private String providerId;

    /*** 活动 */
    @ApiModelProperty(name = "arActivityId", value = "活动 id", position=2)
    private String arActivityId;

    /*** 打卡记录 */
    @ApiModelProperty(name = "punchsList", value = "打卡记录", position=3)
    private List<Punchs> punchsList;

    /*** 是否兑换 */
    @ApiModelProperty(name = "exchange", value = "是否兑换", position=4)
    private Boolean exchange;

    /*** 兑换时间 */
    @ApiModelProperty(name = "exchangeTime", value = "兑换时间", position=5)
    private Long exchangeTime;

    /*** 区划省 */
    @ApiModelProperty(name = "zoneProvince", value = "省(code)", position=6)
    private String zoneProvince;

    /*** 区划市 */
    @ApiModelProperty(name = "zoneCity", value = "市(code)", position=7)
    private String zoneCity;

    /*** 换分区 */
    @ApiModelProperty(name = "zoneDistrict", value = "区(code)", position=8)
    private String zoneDistrict;

    /**
     * 冗余字段 存名称 （省市级名称）
     */
    @ApiModelProperty(name = "zoneProvinceName", value = "省级名称", position=9)
    private String zoneProvinceName;

    /**
     * 冗余字段 存名称 （市级名称）
     */
    @ApiModelProperty(name = "zoneCityName", value = "市级名称", position=10)
    private String zoneCityName;

    /**
     * 冗余字段 存名称 （区县名称）
     */
    @ApiModelProperty(name = "zoneDistrictName", value = "区县名称", position=11)
    private String zoneDistrictName;

    @ApiModelProperty(name = "createdAt", value = "创建时间", position=12)
    protected Long createdAt;

    /*** 景区名称*/
    @ApiModelProperty(name = "providerName", value = "景区名称", position=20)
    private String providerName;

    /*** 打卡经度 */
    @ApiModelProperty(name = "longitude", value = "打卡经度", position=20)
    private double longitude;

    /*** 打卡 纬度 */
    @ApiModelProperty(name = "latitude", value = "打卡 纬度", position=20)
    private double latitude;

    /*** 自拍图URL */
    @ApiModelProperty(name = "photoUrl", value = "自拍图URL", position=20)
    private String photoUrl = "";

    /*** 藏宝点id (即在那个位置打的卡) */
    @ApiModelProperty(name = "treasureSpotId", value = "即在那个位置打的卡", position=20)
    private String treasureSpotId;

    /*** 打卡时间 */
    @ApiModelProperty(name = "punchTime", value = "打卡时间", position=20)
    private long punchTime;

    /*** 打卡点名称（可能是景区名称或景点名称） */
    @ApiModelProperty(name = "punchName", value = "打卡点名称（可能是景区名称或景点名称）", position=20)
    private String punchName;

    @ApiModelProperty(name = "fileType", value = "上传的文件类型，video，img", position=20)
    private String fileType;

    /*** 打卡点类型 （景区、景点、必吃、城市） */
    @ApiModelProperty(name = "punchType", value = "打卡类型 20：景区，60：景点, 70：必吃， 10：目的地（城市）", position=90)
    private String punchType;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getProviderId() {
        return providerId;
    }

    public void setProviderId(String providerId) {
        this.providerId = providerId;
    }

    public String getArActivityId() {
        return arActivityId;
    }

    public void setArActivityId(String arActivityId) {
        this.arActivityId = arActivityId;
    }

    public List<Punchs> getPunchsList() {
        return punchsList;
    }

    public void setPunchsList(List<Punchs> punchsList) {
        this.punchsList = punchsList;
    }

    public Boolean getExchange() {
        return exchange;
    }

    public void setExchange(Boolean exchange) {
        this.exchange = exchange;
    }

    public Long getExchangeTime() {
        return exchangeTime;
    }

    public void setExchangeTime(Long exchangeTime) {
        this.exchangeTime = exchangeTime;
    }

    public String getZoneProvince() {
        return zoneProvince;
    }

    public void setZoneProvince(String zoneProvince) {
        this.zoneProvince = zoneProvince;
    }

    public String getZoneCity() {
        return zoneCity;
    }

    public void setZoneCity(String zoneCity) {
        this.zoneCity = zoneCity;
    }

    public String getZoneDistrict() {
        return zoneDistrict;
    }

    public void setZoneDistrict(String zoneDistrict) {
        this.zoneDistrict = zoneDistrict;
    }

    public String getZoneProvinceName() {
        return zoneProvinceName;
    }

    public void setZoneProvinceName(String zoneProvinceName) {
        this.zoneProvinceName = zoneProvinceName;
    }

    public String getZoneCityName() {
        return zoneCityName;
    }

    public void setZoneCityName(String zoneCityName) {
        this.zoneCityName = zoneCityName;
    }

    public String getZoneDistrictName() {
        return zoneDistrictName;
    }

    public void setZoneDistrictName(String zoneDistrictName) {
        this.zoneDistrictName = zoneDistrictName;
    }

    public Long getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Long createdAt) {
        this.createdAt = createdAt;
    }

    public String getProviderName() {
        return providerName;
    }

    public void setProviderName(String providerName) {
        this.providerName = providerName;
    }

    public double getLongitude() {
        return longitude;
    }

    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }

    public double getLatitude() {
        return latitude;
    }

    public void setLatitude(double latitude) {
        this.latitude = latitude;
    }

    public String getPhotoUrl() {
        return photoUrl;
    }

    public void setPhotoUrl(String photoUrl) {
        this.photoUrl = photoUrl;
    }

    public String getTreasureSpotId() {
        return treasureSpotId;
    }

    public void setTreasureSpotId(String treasureSpotId) {
        this.treasureSpotId = treasureSpotId;
    }

    public long getPunchTime() {
        return punchTime;
    }

    public void setPunchTime(long punchTime) {
        this.punchTime = punchTime;
    }

    public String getPunchName() {
        return punchName;
    }

    public void setPunchName(String punchName) {
        this.punchName = punchName;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getFileType() {
        return fileType;
    }

    public void setFileType(String fileType) {
        this.fileType = fileType;
    }

    public String getPunchType() {
        return punchType;
    }

    public void setPunchType(String punchType) {
        this.punchType = punchType;
    }
}
